﻿using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;

namespace Acaweb.Servicios.Contracts
{
    [ServiceContract]
    public interface IInteresadosService
    {
        /// <summary>
        /// Agrega la información de un nuevo interesado
        /// </summary>
        /// <param name="Interesado"></param>
        [WebInvoke(Method = "POST", UriTemplate = "Create", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        string Create(Interesados Interesado);

        /// <summary>
        /// Provee la lista de las intensiones de admisión de una interesado
        /// </summary>
        /// <param name="Identificacion"></param>
        /// <returns></returns>
        
        [WebInvoke(Method = "POST", UriTemplate = "GetByIdentificacion", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        List<Interesados> GetByIdentificacion(Identificacion Identificacion);

        /// <summary>
        /// Provee la lista de los interesados en un programa académico
        /// </summary>
        /// <param name="CodigoPlan">Codigo interno de un plan de estudios</param>
        /// <returns></returns>
        [WebInvoke(Method = "POST", UriTemplate = "GetByPlanEstudio", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        List<Interesados> GetByPlanEstudio(int CodigoPlan);
        /// <summary>
        /// Provee la lista de interesados en un periodo académico
        /// </summary>
        /// <param name="PeriodoAcademico"></param>
        /// <returns></returns>
        [WebInvoke(Method = "POST", UriTemplate = "GetByPeriodoAcademico", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        List<Interesados> GetByPeriodoAcademico(PeriodoAcademico PeriodoAcademico);

        [WebInvoke(Method = "POST", UriTemplate = "GenerarPDF", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        string GenerarPDF(InteresadoPk InteresadoPk);
    }
}